package VN.EDU.IMIC.DEVELOPER.TRINHCAOSANG.ExceptionHandling;

/*
 * final : một từ khóa
 * final được sử dụng để áp dụng các ràng buộc trên lớp, phương thức và biến. 
 * Lớp final không thể được kế thừa, phương thức final không thể bị ghi đè, và giá trị biến final không thể bị thay đổi
 */
/*	finally : một khối
 * finally được sử dụng để đặt các code quan trọng, nó sẽ được thực thi dù exception có được xử lý hay không
 */

/*finalize	: là một phương thức (method)
 finalize  được sử dụng để thực hiện tiến trình dọn sạch .
 */

public class Final_Finally_Finalize {

	// Ví dụ final trong Java

	// public static void main(String[] args){
	// final int x=100;
	// x=200;//Compile Time Error
	//// }}

	// Ví dụ finally trong Java
	
	// public static void main(String[] args){
	// try{
	// int x=300;
	// }catch(Exception e){System.out.println(e);}
	// finally{System.out.println("Khoi finally duoc thuc thi");}
	// }}

	//
	// Ví dụ finalize trong Java
	//
	public void finalize() {
		System.out.println("finalize duoc goi");
	}

	public static void main(String[] args) {
		Final_Finally_Finalize f1 = new Final_Finally_Finalize();
		Final_Finally_Finalize f2 = new Final_Finally_Finalize();
		f1 = null;
		f2 = null;
		System.gc(); /* gc : Garbage collection */
	}
}
